Network functions virtualization (NFV) (also known as virtual network function (VNF)) offers a new way to design, deploy and manage networking services. NFV decouples the network functions, such as network address translation (NAT), firewalling, intrusion detection, domain name service (DNS), and caching, to name a few, from proprietary hardware appliances so they can run in software. Typically, in mobile wireless network, subscriber service placement is accomplished using a service chain approach. Such approach is conventionally applied in an environment including a network with a number of network devices, where the network devices offer a set of services to subscribers. Each subscriber of the network utilizes a subset of the set of services, and the subset of such set of services is included in a chain of services for each subscriber. An order of such chain of services is typically not predefined, and traversing the plurality of network devices during service execution often causes delay to the subscribers.
To this end, service chaining is often required if subscriber traffic needs to go through multiple in-line services. Moreover, if more than one chain of services is possible, a network operator typically must configure the network to direct the right traffic through the right in-line service path. A service allocation processor is often used for allocating the services to the network devices, using a service selector configured to order the services from a most-utilized service to a least-utilized service. During use, the service selector is also configured to select services from the most-utilized service to the least-utilized service.
Further, for each service, a service placing logic of the service allocation processor is configured to select a network device of the network for each service so that placing each service in the network adds a minimum sum of additional delays, based on services already placed in the network. Bandwidth may also be considered when placing each service. In addition, a path planner of the service allocation processor is configured to update a path for each subscriber to reflect the placed service.
Thus, in such systems, utilization, delay and/or bandwidth are considered when placing services in the network. One possible limitation of such approach, however, is that, during service placement, it does not consider interdependencies among the services including, but not limited to data locality. Therefore, such system is not always capable of achieving optimal performance.